package Lab15;


//import java.util.ArrayList;
//import java.util.List;
//import java.util.Scanner;
//
//public class PlaneFuncImpl2 implements PlaneFunc{
//    //获取单例
//    List<PlaneInfo> planeInfos = PlaneInfoSigleList.getPlaneInfos();
//    @Override
//    public void addPlaneInfo() {
//        PlaneInfo planeInfo = new PlaneInfo();
//        System.out.println("录入航班信息：");
//        System.out.println("航班编号：");
//        Scanner sc = new Scanner(System.in);
//        String planeId = sc.next();
//        planeInfo.setPlaneId(planeId);
//
//        System.out.println("航线：");
//        System.out.println("出发地：");
//        String routeStart = sc.next();
//        planeInfo.setRouteStart(routeStart);
//        System.out.println("目的地：");
//        String routeEnd = sc.next();
//        planeInfo.setRouteEnd(routeEnd);
//
//        System.out.println("时间(输入数字)：");
//        System.out.println("星期一：1  星期二：2  星期三：3  星期四：4  星期五：5  星期六：6  星期日：7");
//        int day = sc.nextInt();
//        String time = numToString(day);
//        planeInfo.setTime(time);
//
//        System.out.println("座位数：");
//        int seatNum = sc.nextInt();
//        planeInfo.setSeatNum(seatNum);
////        PlaneInfoSigleList.getPlaneInfos().add(planeInfo);
//        planeInfos.add(planeInfo);
//        System.out.println(planeInfo);
//        System.out.println("录入成功！");
//    }
//    private String numToString (int day) {
//        switch (day) {
//            case 1:
//                return "星期一";
//            case 2:
//                return "星期二";
//            case 3:
//                return "星期三";
//            case 4:
//                return "星期四";
//            case 5:
//                return "星期五";
//            case 6:
//                return "星期六";
//            case 7:
//                return "星期日";
//            default:
//                return "输入错误";
//        }
//    }
//
////    @Override
////    public void deletePlaneInfo() {
////        System.out.println("请输入要删除的航班编号：");
////
////    }
//
//    // 查询: 多种查询方式（航班好，起点，终点，飞行时间，多种组合）
//    @Override
//    public void searchPlaneInfo() {
//        System.out.println("请输入要查询方式：");
//        System.out.println("***  1. 航班编号    2. 航班起点  ***");
//        System.out.println("***  3. 航班终点    4. 航班时间  ***");
//        System.out.println("***         5. 混合查询         ***");
//        Scanner sc = new Scanner(System.in);
//        int choice = sc.nextInt();
//        int flag = -1;
//        List<PlaneInfo> searchWay = new ArrayList<>();
//        switch (choice) {
//            case 1:
////                System.out.println("请输入航班编号：");
////                String planeId = sc.next();
////                int flag = searchWay1(planeId);
////                if (flag == -1) {
////                    System.out.println("重新查询");
////                }
////                int flag = -1;
//                do {
//                    System.out.println("请输入航班编号：");
//                    String planeId = sc.next();
//                    searchWay = searchWay1(planeId);
//                } while (searchWay.size() == 0);
//
//                break;
//            case 2:
////                System.out.println("请输入航班起点：");
////                String routeStart = sc.next();
////                searchWay2(routeStart);
//
//                do {
//                    System.out.println("请输入航班起点：");
//                    String routeStart = sc.next();
//                    flag = searchWay2(routeStart);
//                } while (flag == -1);
//                break;
//            case 3:
////                System.out.println("请输入航班终点：");
////                String routeEnd = sc.next();
////                searchWay3(routeEnd);
//                do {
//                    System.out.println("请输入航班终点：");
//                    String routeEnd = sc.next();
//                    flag =  searchWay3(routeEnd);
//                } while (flag == -1);
//                break;
//            case 4:
////                System.out.println("请输入航班时间：");
////                String time = sc.next();
////                searchWay4(time);
//                do {
//                    System.out.println("请输入航班时间：");
//                    System.out.println("星期一：1  星期二：2  星期三：3  星期四：4  星期五：5  星期六：6  星期日：7");
//                    String time = numToString(sc.nextInt());
//                    flag =  searchWay4(time);
//                } while (flag == -1);
//                break;
//            case 5:
//                do {
//                    System.out.println("请输入航班编号（可为空，直接回车）：");
//                    String planeId = sc.nextLine();
//                    System.out.println("请输入航班起点（可为空，直接回车）：");
//                    String routeStart = sc.nextLine();
//                    System.out.println("请输入航班终点（可为空，直接回车）：");
//                    String routeEnd = sc.nextLine();
//                    System.out.println("星期一：1  星期二：2  星期三：3  星期四：4  星期五：5  星期六：6  星期日：7（不可为空）");
//                    String time = numToString(sc.nextInt());
//                    flag = searchWay5(planeId, routeStart, routeEnd,time);
//                } while (flag == -1);
//                break;
//            default:
//                System.out.println("输入错误！");
//        }
//
//    }
//    private List<PlaneInfo> searchWay1(String planeId) {
//        List<PlaneInfo> searchWay1 = new ArrayList<>();
//        for (PlaneInfo planeInfo : planeInfos) {
//            if (planeInfo.getPlaneId().equals(planeId)) {
//                searchWay1.add(planeInfo);
//            }
//        }
//        return searchWay1;
//    }
//    private int searchWay2(String routeStart) {
//        boolean found = false;
//        System.out.println("航班编号\t航线\t\t\t时间\t\t座位数");
//        for (PlaneInfo planeInfo : planeInfos) {
//            if (planeInfo.getRouteStart().equals(routeStart)) {
//                found = true;
//                System.out.println(planeInfo.getPlaneId() + "\t" + planeInfo.getRouteStart() +"->"+planeInfo.getRouteEnd()  + "\t" + planeInfo.getTime() + "\t" + planeInfo.getSeatNum());
//            }
//        }
//        if (!found) {
//            System.out.println("没有找到相关航班！请重新输入：");
//            return -1;
//        }
//        return 0;
//    }
//    private int searchWay3(String routeEnd) {
//        boolean found = false;
//        System.out.println("航班编号\t航线\t\t\t时间\t\t座位数");
//        for (PlaneInfo planeInfo : planeInfos) {
//            if (planeInfo.getRouteEnd().equals(routeEnd)) {
//                found = true;
//                System.out.println(planeInfo.getPlaneId() + "\t" + planeInfo.getRouteStart() +"->"+planeInfo.getRouteEnd()  + "\t" + planeInfo.getTime() + "\t" + planeInfo.getSeatNum());
//            }
//        }
//        if (!found) {
//            System.out.println("没有找到相关航班！请重新输入：");
//            return -1;
//        }
//        return 0;
//    }
//    private int searchWay4(String time) {
//        boolean found = false;
//        System.out.println("航班编号\t航线\t\t\t时间\t\t座位数");
//        for (PlaneInfo planeInfo : planeInfos) {
//            if (planeInfo.getTime().equals(time)) {
//                found = true;
//                System.out.println(planeInfo.getPlaneId() + "\t" + planeInfo.getRouteStart() +"->"+planeInfo.getRouteEnd()  + "\t" + planeInfo.getTime() + "\t" + planeInfo.getSeatNum());
//            }
//        }
//        if (!found) {
//            System.out.println("没有找到相关航班！请重新输入：");
//            return -1;
//        }
//        return 0;
//    }
//    private int searchWay5(String planeId, String routeStart, String routeEnd,String time){
//        System.out.println("航班编号\t航线\t\t\t时间\t\t座位数");
//        List<PlaneInfo> printSearch = new ArrayList<>();
//        //如果为空，或者匹配，则输出
//        //直接回车是否会输入""
//        if (planeId != "") {
//            for(PlaneInfo planeInfo : planeInfos){
//                if (planeInfo.getPlaneId().equals(planeId)) {
//                    printSearch.add(planeInfo);
//                }
//            }
//            if(printSearch.size() == 0){
//                System.out.println("没有找到相关航班！请重新输入：");
//                return -1;
//            }
//        }
//        if (routeStart != "") {
//            if(printSearch.size() == 0){
//                for(PlaneInfo planeInfo : planeInfos){
//                    if (planeInfo.getRouteStart().equals(routeStart)) {
//                        printSearch.add(planeInfo);
//                    }
//                }
//
//            }else{
//                for(PlaneInfo planeInfo : printSearch){
//                    if (!planeInfo.getRouteStart().equals(routeStart)) {
//                        printSearch.remove(planeInfo);
//                    }
//                }
//            }
//            if(printSearch.size() == 0 || printSearch.size() == 0){
//                System.out.println("没有找到相关航班！请重新输入：");
//                return -1;
//            }
//        }
//        if (routeEnd != "") {
//            if(printSearch.size() == 0){
//                for(PlaneInfo planeInfo : planeInfos){
//                    if (planeInfo.getRouteEnd().equals(routeEnd)) {
//                        printSearch.add(planeInfo);
//                    }
//                }
//            }else{
//                for(PlaneInfo planeInfo : printSearch){
//                    if (!planeInfo.getRouteEnd().equals(routeEnd)) {
//                        printSearch.remove(planeInfo);
//                    }
//                }
//            }
//            if(printSearch.size() == 0 || printSearch.size() == 0){
//                System.out.println("没有找到相关航班！请重新输入：");
//                return -1;
//            }
//        }
//        // 时间不为空
//        if(printSearch.size() == 0){
//            for(PlaneInfo planeInfo : planeInfos){
//                if (planeInfo.getTime().equals(time)) {
//                    printSearch.add(planeInfo);
//                }
//            }
//        }else{
//            for(PlaneInfo planeInfo : printSearch){
//                if (!planeInfo.getTime().equals(time)) {
//                    printSearch.remove(planeInfo);
//                }
//            }
//        }
//        if (printSearch.size() == 0) {
//            System.out.println("没有找到相关航班！请重新输入：");
//            return -1;
//        }else{
//            for (PlaneInfo planeInfo : printSearch) {
//                System.out.println(planeInfo.getPlaneId() + "\t" + planeInfo.getRouteStart() +"->"+planeInfo.getRouteEnd()  + "\t" + planeInfo.getTime() + "\t" + planeInfo.getSeatNum());
//            }
//        }
//        return 0;
//    }
//
////    private void printSearch(List<PlaneInfo> printSearch) {
////        System.out.println("航班编号\t航线\t\t\t时间\t\t座位数");
////        for (PlaneInfo planeInfo : printSearch) {
////            System.out.println(planeInfo.getPlaneId() + "\t" + planeInfo.getRouteStart() +"->"+planeInfo.getRouteEnd()  + "\t" + planeInfo.getTime() + "\t" + planeInfo.getSeatNum());
////        }
////    }
//
//    @Override
//    public int updatePlaneInfo() {
//        System.out.println("请输入要修改的航班编号：");
//        Scanner sc = new Scanner(System.in);
//        String planeId = sc.next();
//        int index = searchWay1(planeId);
//
//        if (planeInfo.getPlaneId().equals(planeId)) {
//            System.out.println("请输入新的航班编号：");
//            String newPlaneId = sc.next();
//            planeInfo.setPlaneId(newPlaneId);
//            System.out.println("请输入新的航线起点：");
//            String routeStart = sc.next();
//            planeInfo.setRouteStart(routeStart);
//            System.out.println("请输入新的航线终点：");
//            String routeEnd = sc.next();
//            planeInfo.setRouteEnd(routeEnd);
//            System.out.println("请输入新的时间：");
//            System.out.println("星期一：1  星期二：2  星期三：3  星期四：4  星期五：5  星期六：6  星期日：7（不可为空）");
//            String time = numToString(sc.nextInt());
//            planeInfo.setTime(time);
//            System.out.println("请输入新的座位数：");
//            int seatNum = sc.nextInt();
//            planeInfo.setSeatNum(seatNum);
//        }
//
//
//    }
//    public void showPlaneInfo(List<PlaneInfo> planeInfos) {
//        //显示所有航班信息
//        //用文件保存，从文件读取
//        System.out.println("\n所有航班信息：");
//        System.out.println("航班编号\t航线\t\t\t时间\t\t座位数");
//        for (PlaneInfo planeInfo : planeInfos) {
//            System.out.println(planeInfo.getPlaneId() + "\t" + planeInfo.getRouteStart() +"->"+planeInfo.getRouteEnd()  + "\t" + planeInfo.getTime() + "\t" + planeInfo.getSeatNum());
//        }
//        System.out.println();
//    }
//}
